package com.fishcoco.app.yunhang.activity.login;

import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.support.design.widget.NavigationView;
import android.support.v4.view.GravityCompat;
import android.support.v4.widget.DrawerLayout;
import android.support.v7.app.ActionBarDrawerToggle;
import android.support.v7.widget.Toolbar;
import android.view.Menu;
import android.view.MenuItem;

import com.fishcoco.app.yunhang.R;
import com.fishcoco.app.yunhang.activity.base.BaseActivity;
import com.fishcoco.app.yunhang.fragments.Fragment1;
import com.fishcoco.app.yunhang.fragments.Fragment2;
import com.fishcoco.app.yunhang.fragments.Fragment3;

public class MainActivity extends BaseActivity implements NavigationView.OnNavigationItemSelectedListener {
  public static final int EXIT = 0x401;
  Toolbar toolbar;

  public Handler mHandler = new Handler() {

    @Override
    public void handleMessage(Message msg) {
      super.handleMessage(msg);
      switch (msg.what) {
        case  EXIT:
          startActivityWithoutExtras(LoginActivity.class);
          finish();
          break;
      }
    }
  };

  @Override
  protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);


    if (savedInstanceState == null) {
      loadRootFragment(R.id.fl_container, Fragment1.newInstance());
    }

  }

  @Override
  protected int setLayoutResourceID() {
    return R.layout.activity_main;
  }

  @Override
  protected void setUpView() {
    super.setUpView();
    toolbar = (Toolbar) findViewById(R.id.toolbar);
    setSupportActionBar(toolbar);
    toolbar.setTitle(R.string.app_name);
    DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout);
    ActionBarDrawerToggle toggle = new ActionBarDrawerToggle(
            this, drawer, toolbar, R.string.navigation_drawer_open, R.string.navigation_drawer_close);
    drawer.setDrawerListener(toggle);
    toggle.syncState();

    NavigationView navigationView = (NavigationView) findViewById(R.id.nav_view);
    navigationView.setNavigationItemSelectedListener(this);
  }

  @Override
  public void onBackPressedSupport() {
    DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout);
    if (drawer.isDrawerOpen(GravityCompat.START)) {
      drawer.closeDrawer(GravityCompat.START);
    } else {
      super.onBackPressedSupport();
    }

  }

  @Override
  public boolean onCreateOptionsMenu(Menu menu) {
    // Inflate the menu; this adds items to the action bar if it is present.
//    getMenuInflater().inflate(R.menu.main, menu);
    return true;
  }

  @Override
  public boolean onOptionsItemSelected(MenuItem item) {
    // Handle action bar item clicks here. The action bar will
    // automatically handle clicks on the Home/Up button, so long
    // as you specify a parent activity in AndroidManifest.xml.
    int id = item.getItemId();

    //noinspection SimplifiableIfStatement
    if (id == R.id.action_settings) {
      return true;
    }

    return super.onOptionsItemSelected(item);
  }

  @SuppressWarnings("StatementWithEmptyBody")
  @Override
  public boolean onNavigationItemSelected(MenuItem item) {
    // Handle navigation view item clicks here.
    int id = item.getItemId();

    if (id == R.id.nav_camera) {
      // Handle the camera action
      toolbar.setTitle(R.string.app_name);
    } else if (id == R.id.nav_gallery) {
      toolbar.setTitle(R.string.home);
      start(Fragment1.newInstance());
    } else if (id == R.id.nav_slideshow) {
      toolbar.setTitle(R.string.new_password);
      start(Fragment2.newInstance());
    } else if (id == R.id.nav_manage) {
      toolbar.setTitle(R.string.username);
      start(Fragment3.newInstance());
    } else if (id == R.id.nav_share) {
      toolbar.setTitle(R.string.share);
    } else if (id == R.id.nav_exit) {
      mHandler.sendEmptyMessageDelayed(EXIT,300);
    }

    DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout);
    drawer.closeDrawer(GravityCompat.START);
    return true;
  }
}
